package com.team.hiring.common.util;

import java.lang.reflect.Array;

import org.apache.commons.lang3.Validate;

/**
 * 扩展apche commons Validate的功能
 *
 * @author Hsu。
 * @since Oct 12, 2016
 */
public class ValidateUtil extends Validate {

    private ValidateUtil() throws IllegalAccessException {
        throw new IllegalAccessException();
    }

    /**
     * 扩展对原生数组的判断
     * 
     * @param array
     * @param index
     */
    public static void validPrimitiveArrayIndex(Object array, int index) {
        Validate.notNull(array, "参数array不能为空:" + array);
        Validate.isTrue(array.getClass().isArray(), "参数array必须是数组:" + array);
        Validate.isTrue(array.getClass().getComponentType().isPrimitive(), "参数array必须是原生数组:" + array);

        int arrayLength = Array.getLength(array);
        if (index < 0 || index >= arrayLength) {
            throw new ArrayIndexOutOfBoundsException("数据下标越界：" + index);
        }
    }

}
